doctests = "\n\nUnpack tuple\n\n >>> t = (1, 2, 3)\n >>> a, b, c = t\n >>> a == 1 and b == 2 and c == 3\n True\n\nUnpack list\n\n >>> l = [4, 5, 6]\n >>> a, b, c = l\n >>> a == 4 and b == 5 and c == 6\n True\n\nUnpack implied tuple\n\n >>> a, b, c = 7, 8, 9\n >>> a == 7 and b == 8 and c == 9\n True\n\nUnpack string... fun!\n\n >>> a, b, c = 'one'\n >>> a == 'o' and b == 'n' and c == 'e'\n True\n\nUnpack generic sequence\n\n >>> class Seq:\n ... def __getitem__(self, i):\n ... if i >= 0 and i < 3: return i\n ... raise IndexError\n ...\n >>> a, b, c = Seq()\n >>> a == 0 and b == 1 and c == 2\n True\n\nSingle element unpacking, with extra syntax\n\n >>> st = (99,)\n >>> sl = [100]\n >>> a, = st\n >>> a\n 99\n >>> b, = sl\n >>> b\n 100\n\nNow for some failures\n\nUnpacking non-sequence\n\n >>> a, b, c = 7\n Traceback (most recent call last):\n ...\n TypeError: unpack non-sequence\n\nUnpacking tuple of wrong size\n\n >>> a, b = t\n Traceback (most recent call last):\n ...\n ValueError: too many values to unpack\n\nUnpacking tuple of wrong size\n\n >>> a, b = l\n Traceback (most recent call last):\n ...\n ValueError: too many values to unpack\n\nUnpacking sequence too short\n\n >>> a, b, c, d = Seq()\n Traceback (most recent call last):\n ...\n ValueError: need more than 3 values to unpack\n\nUnpacking sequence too long\n\n >>> a, b = Seq()\n Traceback (most recent call last):\n ...\n ValueError: too many values to unpack\n\nUnpacking a sequence where the test for too long raises a different kind of\nerror\n\n >>> class BozoError(Exception):\n ... pass\n ...\n >>> class BadSeq:\n ... def __getitem__(self, i):\n ... if i >= 0 and i < 3:\n ... return i\n ... elif i == 3:\n ... raise BozoError\n ... else:\n ... raise IndexError\n ...\n\nTrigger code while not expecting an IndexError (unpack sequence too long, wrong\nerror)\n\n >>> a, b, c, d, e = BadSeq()\n Traceback (most recent call last):\n ...\n BozoError\n\nTrigger code while expecting an IndexError (unpack sequence too short, wrong\nerror)\n\n >>> a, b, c = BadSeq()\n Traceback (most recent call last):\n ...\n BozoError\n\n"